home *** CD-ROM | disk | FTP | other *** search
/ The Way Things Work / Way Things Work, The (1994)(Dorling Kindersley).iso / dkstp / twtw.mst < prev   
Text File  |  1994-06-09  |  18KB  |  692 lines

  1. '**************************************************************************
  2. '*            Microsoft Multimedia Publishing Group Setup
  3. '*                 The Way Things Work
  4. '*       (c) 1992 Microsoft Corporation.  All Rights Reserved.
  5. '**************************************************************************
  6.  
  7. '$DEFINE DEBUG  ''Define for script development/debugging
  8. '$DEFINE MERISMUS  ''Define for Merismus Editorial support DLL
  9.  
  10. '$INCLUDE 'setupapi.inc'
  11. '$INCLUDE 'msdetect.inc'
  12.  
  13. ''Dialog ID's
  14. CONST WELCOME       = 100
  15. CONST ASKQUITDLG    = 200
  16. CONST DESTPATH      = 300
  17. CONST DESTPATH_EXISTING      = 1000
  18. CONST EXITFAILURE   = 400
  19. CONST EXITQUIT      = 600
  20. CONST EXITSUCCESS   = 700
  21. CONST EXITSUCCESS_OVERVIEW   = 1100
  22. CONST EXITSUCCESS_NORESTART  = 1800
  23. CONST OPTIONS       = 800
  24. CONST APPHELP       = 900
  25. CONST BADPATH       = 6400
  26. CONST ASKVIDEOMODE  = 1200
  27. CONST CHECKVIDEO    = 1300
  28. CONST PALEXPLAIN    = 1400
  29. CONST MAILMAN       = 1500
  30. CONST ACTIVATEFONTS = 1700
  31. CONST TOOBIG        = 6300
  32.  
  33. CONST ASKNEWADPCM   = 2100
  34.  
  35. CONST ASKCONFIGADPCM  =  2200
  36. CONST NEWADPCM        =  2600
  37. CONST NEWSYSTEMSOFTWARE      =     2300
  38. CONST WARNNOSYSSOFT          =     3100
  39.  
  40. CONST TGRPBOXID     = 3742
  41.  
  42.  
  43. ''Bitmap ID
  44. CONST LOGO = 1
  45.  
  46. GLOBAL SRCDIR$      '' CD root path (location of setup.exe)
  47. GLOBAL VIDEO$       '' Windows Video Driver type (VGA or 8514)
  48. GLOBAL INSTRINI$    '' Fully-qualified path to MSINSTR.INI
  49. GLOBAL SYSINI$      '' Fully-qualified path to SYSTEM.INI
  50. GLOBAL WININI$      '' Fully-qualified path to WIN.INI
  51. GLOBAL DEST$        '' Default destination directory.
  52. GLOBAL OPTCUR$      '' Option selection from option dialog.
  53. GLOBAL CUIDLL$      '' Name of Custom User Interface DLL
  54. GLOBAL VIDACT$      '' Stores user decision to use Palettized VGA.
  55. GLOBAL NEWSYSADPCM$     '' Stores user decision to use new ADPCM driver         
  56. GLOBAL TARGRP$
  57.  
  58.  
  59.  
  60.  
  61. '**************************************************************************
  62. '**************************************************************************
  63. '**
  64. '**  Multimedia Publishing Group - Setup Script
  65. '**
  66. '**  Modify the following DEFINES and routines to customize setup
  67. '**    for a specific product
  68. '**
  69. '**************************************************************************
  70. '**************************************************************************
  71. DECLARE SUB Install             '' Modify for specific runtimes
  72. DECLARE SUB InstallFonts        '' Modify for custom fonts
  73. DECLARE SUB CopyADPCMFiles 
  74.  
  75.  
  76. DECLARE FUNCTION CopyADPCMIni () AS INTEGER 
  77.  
  78.  
  79.  
  80. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  81. DECLARE FUNCTION IsVersionLater (VerOld$, VerNew$) AS INTEGER   
  82. DECLARE FUNCTION IsDateLater (DateOld$, DateNew$) AS INTEGER
  83.  
  84.  
  85.  
  86. '**************************************************************************
  87. '**  General Installation Script
  88. '**************************************************************************
  89. INIT:
  90.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  91.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  92.  
  93.     SetBitmap CUIDLL$, LOGO
  94.     SetTitle "The Way Things Work"
  95.  
  96.     'AddToBillboardList CUIDLL$, MAILMAN, "MailmanDlgProc", 1000
  97.  
  98.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  99.     IF szInf$ = "" THEN
  100.         szInf$ = GetSymbolValue("STF_CWDDIR") + "TWTW.INF"
  101.     END IF
  102.     ReadInfFile szInf$
  103.  
  104.     OPTCUR$ = "2"
  105.  
  106.     SRCDIR$ = GetSymbolValue("STF_SRCDIR")
  107.     INSTRINI$ = MakePath(GetWindowsDir(),"TWTW.INI")
  108.     SYSINI$ = MakePath(GetWindowsDir(),"SYSTEM.INI")
  109.     WININI$ = MakePath(GetWindowsDir(),"WIN.INI")
  110.  
  111. '!!!!! Initialize the Video mode here ...
  112.     VIDEO$ = "VGA"
  113.  
  114. '$IFDEF DEBUG
  115.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  116.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  117.     IF IsDriveValid(WinDrive$) = 0 THEN
  118.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  119.         GOTO QUIT
  120.     END IF
  121. '$ENDIF ''DEBUG
  122.  
  123.  
  124. INITWINCHECK:
  125.     If ((GetWindowsMajorVersion() = 3) And (GetWindowsMinorVersion() >= 1)) Or (GetWindowsMajorVersion() > 3) Then
  126.         'Version of Windows is OK.  Continue with Setup...
  127.     Else
  128.         i% = DoMsgBox("My First Incredible Amazing Dictionary requires Windows 3.1 or greater.","Setup Failed", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  129.         dlg% = EXITFAILURE
  130.         GOTO QUITL3
  131.     End If
  132.  
  133. WELCOME:
  134.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  135.     IF sz$ = "CONTINUE" THEN
  136.         UIPop 1
  137.     ELSE
  138.         GOSUB ASKQUIT
  139.         GOTO WELCOME
  140.     END IF
  141.  
  142. VIDL1:
  143.     VIDACT$ = "NOSWITCH"
  144.     'sz$ = UIStartDlg(CUIDLL$, CHECKVIDEO, "FInfoVideoDlgProc", 0, "")
  145.     IF sz$ = "REACTIVATE" THEN
  146.         GOTO VIDL1
  147.     END IF
  148.     UIPop 1
  149.     IF sz$ = "SUBVGA" THEN
  150.         i% = DoMsgBox( "The Way Things Work requires a VGA display.", "Setup Failed", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  151.         dlg% = EXITFAILURE
  152.         GOTO QUITL3
  153.     END IF
  154.     sz$ = "VIDEOISOK"
  155.  
  156. GETPATH:
  157.     DEST$ = "C:\TWTW"
  158.  
  159.     SetSymbolValue "EditTextIn", DEST$
  160.     SetSymbolValue "EditFocus", "END"
  161.  
  162. GETPATHL1:
  163.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  164.  
  165.     DEST$ = GetSymbolValue("EditTextOut")
  166.  
  167.     IF sz$ = "CONTINUE" THEN
  168.         IF IsDirWritable(DEST$) = 0 THEN
  169.         GOSUB BADPATH
  170.         GOTO GETPATHL1
  171.         END IF
  172.         IF GetFreeSpaceForDrive( MID$( DEST$, 1, 1 ) ) < 600000 THEN
  173.         GOSUB DRIVEFULL
  174.         GOTO GETPATHL1
  175.         END IF
  176.         IF DoesDirExist( DEST$ ) = 0 THEN
  177.         i% = DoMsgBox( "The specified directory does not exist.  Do you want to create the directory?", "Install Location", 8228)
  178.         IF i% = 7 THEN
  179.             GOTO GETPATHL1
  180.         END IF
  181.         END IF
  182.         UIPop 1
  183.     ELSEIF sz$ = "REACTIVATE" THEN
  184.         GOTO GETPATHL1
  185.     ELSEIF sz$ = "BACK" THEN
  186.         UIPop 1
  187.         GOTO WELCOME
  188.     ELSE
  189.         GOSUB ASKQUIT
  190.         GOTO GETPATHL1
  191.     END IF
  192.  
  193. ''*****************************************************************
  194.  
  195.     Install
  196.  
  197. ''*****************************************************************
  198.  
  199. QUIT:
  200.     ON ERROR GOTO ERRQUIT
  201.  
  202.     IF ERR = 0 THEN
  203.         IF VIDACT$ = "SWITCH" THEN
  204.         CreateIniKeyValue SYSINI$, "boot", "display.drv", "vgapal.drv", cmoOverwrite
  205.         CreateIniKeyValue SYSINI$, "boot.description", "display.drv", "Palettized VGA 640x480 with 16 colors", cmoOverwrite
  206.         dlg% = EXITSUCCESS_OVERVIEW
  207.         GOTO MAILMANDLG
  208.         ELSEIF NEWSYSADPCM$ = "SWITCH" THEN
  209.         dlg% = EXITSUCCESS_OVERVIEW
  210.         GOTO MAILMANDLG
  211.         ELSE                
  212.         dlg% = EXITSUCCESS_NORESTART
  213.         GOTO MAILMANDLG
  214.         END IF
  215.     ELSEIF ERR = STFQUIT THEN
  216.         'dlg% = EXITQUIT
  217.         'GOTO QUITL3
  218.         END
  219.     ELSE
  220.         dlg% = EXITFAILURE
  221.         GOTO QUITL3
  222.     END IF
  223.     TEMP$ = GetIniKeyString( SYSINI$, "boot", "display.drv" )
  224.     IF TEMP$ = "vgapal.drv" THEN
  225.         GOTO QUITL3
  226.     END IF
  227. QUITL3:
  228.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  229.     IF sz$ = "REACTIVATE" THEN
  230.         GOTO QUITL3
  231.     ELSEIF sz$ = "OVERVIEW" THEN
  232.         EXEFILE$  = MakePath( DEST$, "twtw.exe" )
  233.         'LOADFILE$ = " " + MakePath( DEST$, "twtw.png" )
  234.         'RUN EXEFILE$ + LOADFILE$, NOWAIT
  235.         RUN EXEFILE$ 
  236.     ELSEIF sz$ = "README" THEN
  237.         RUN "NOTEPAD.EXE" + " " + MakePath(DEST$,"README.TXT"), NOWAIT
  238.         GOTO QUITL3
  239.     ELSEIF sz$ = "RESTART" THEN
  240.         SetRestartDir DEST$
  241.         ForceRestartOn
  242.         i% = ExitExecRestart()
  243.         i% = DoMsgBox( "The new system configuration will not be loaded until Windows is restarted.", "Restart Failed", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  244.     ELSEIF sz$ = "EXIT" THEN
  245.         IF VIDACT$ = "SWITCH" OR NEWSYSADPCM$ = "SWITCH" THEN
  246.         i% = DoMsgBox( "The new system configuration will not be loaded until Windows is restarted.", "The Way Things Work Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  247.         END IF
  248.     END IF
  249.     UIPop 1
  250.  
  251.     END
  252.  
  253. MAILMANDLG:
  254.     'sz$ = UIStartDlg(CUIDLL$, MAILMAN, "MailmanDlgProc", APPHELP, HELPPROC$)
  255.     'UIPop 1
  256.     GOTO QUITL3
  257.  
  258. ERRQUIT:
  259.     i% = DoMsgBox("Setup sources were corrupted, call Microsoft Product Support Services at (206) 454-2030 for assistance.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  260.     END
  261.  
  262.  
  263.  
  264. BADPATH:
  265.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  266.     IF sz$ = "REACTIVATE" THEN
  267.         GOTO BADPATH
  268.     END IF
  269.     UIPop 1
  270.     RETURN
  271.  
  272.  
  273.  
  274. DRIVEFULL:
  275.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  276.     IF sz$ = "REACTIVATE" THEN
  277.         GOTO DRIVEFULL
  278.     END IF
  279.     UIPop 1
  280.     RETURN
  281.  
  282.  
  283.  
  284. ASKQUIT:
  285.     sz$ = UIStartDlg(CUIDLL$, ASKQUITDLG, "FQuitDlgProc", 0, "")
  286.  
  287.     IF sz$ = "EXIT" THEN
  288.         UIPopAll
  289.         ERROR STFQUIT
  290.     ELSEIF sz$ = "REACTIVATE" THEN
  291.         GOTO ASKQUIT
  292.     ELSE
  293.         UIPop 1
  294.     END IF
  295.     RETURN
  296.  
  297.  
  298.  
  299.  
  300. '*************************************************************************
  301. '**
  302. '** Install
  303. '** -------
  304. '**
  305. '** Purpose:
  306. '**     Builds the copy list and performs all installation operations.
  307. '** Arguments:
  308. '**     none.
  309. '** Returns:
  310. '**     none.
  311. '*************************************************************************
  312. SUB Install STATIC
  313.  
  314.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  315.     CreateDir DEST$, cmoNone
  316.     WinDir$ = GetWindowsDir()
  317.     SysDir$ = GetWindowsSysDir()
  318.  
  319.     'i% = DoMsgBox("version of msacm.drv is " + GetVersionOfFile(SrcDir$+"adpcm\msacm.drv"), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  320.     'i% = DoMsgBox("version of msadpcm.acm is" + GetVersionOfFile(SrcDir$+"adpcm\msadpcm.acm"), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  321.  
  322.     'OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  323.  
  324.     'WriteToLogFile ""
  325.     'WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  326.     'WriteToLogFile ""
  327.     'WriteToLogFile "May have had to create the directory: " + DEST$
  328.     'WriteToLogFile ""
  329.  
  330.     AddSectionFilesToCopyList "Executable", SrcDir$, DEST$
  331.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  332.  
  333.  
  334.     ADPCMCOPY% = 0      
  335.     
  336.  
  337.     'Find out if msacm driver is installed      
  338.  
  339.     IF DoesFileExist ((MakePath (SysDir$, "msacm.drv")), femExists) = 1 THEN
  340.  
  341.     'Is the version installed the latest version?
  342.  
  343.     VerNew$ = GetVersionOfFile (MakePath (SrcDir$, "adpcm\msacm.drv"))      
  344.     VerOld$ = GetVersionOfFile (MakePath (SysDir$, "msacm.drv"))    
  345.  
  346.     ADPCMCOPY% = IsVersionLater (VerOld$, VerNew$)  
  347.  
  348.     ELSE
  349.  
  350.     ADPCMCOPY% = 1
  351.  
  352.     END IF
  353.  
  354.     
  355.     'We only need to look at the msadpcm.acm file if we have not already
  356.     'installed our version of ADPCM     
  357.         
  358.     IF ADPCMCOPY% = 0 THEN
  359.  
  360.     'Find out if msadpcm.acm is installed       
  361.     
  362.     IF DoesFileExist ((MakePath (SysDir$, "msadpcm.acm")), femExists) = 1 THEN
  363.  
  364.     'Is the version installed the latest version?
  365.  
  366.     VerNew$ = GetVersionOfFile (MakePath (SrcDir$, "adpcm\msadpcm.acm"))    
  367.     VerOld$ = GetVersionOfFile (MakePath (SysDir$, "msadpcm.acm"))  
  368.  
  369.     ADPCMCOPY% = IsVersionLater (VerOld$, VerNew$)  
  370.  
  371.     ELSE
  372.  
  373.     ADPCMCOPY% = 1
  374.  
  375.     END IF
  376.     END IF      
  377.  
  378.  
  379.     IF ADPCMCOPY% = 1 THEN
  380.  
  381. ADPCM1:
  382.  
  383.     sz$ = UIStartDlg(CUIDLL$, NEWSYSTEMSOFTWARE, "FInfo0DlgProc", 0, "")
  384.     IF sz$ = "REACTIVATE" THEN
  385.         GOTO ADPCM1
  386.     END IF
  387.     UIPop 1
  388.     IF sz$ = "VIDSWITCH" THEN
  389.         CopyADPCMFiles  
  390.         NEWSYSADPCM$ = "SWITCH"
  391.     ELSEIF sz$ = "README" THEN
  392.  
  393. ADPCM11:
  394.         sz$ = UIStartDlg(CUIDLL$, NEWADPCM, "FInfo0DlgProc", 0, "")
  395.         IF sz$ = "REACTIVATE" THEN
  396.             GOTO ADPCM11
  397.         END IF  
  398.         UIPop 1
  399.         GOTO ADPCM1
  400.  
  401.     ELSEIF sz$ = "CANCEL" THEN
  402.  
  403. ADPCM12:
  404.         sz$ = UIStartDlg(CUIDLL$, WARNNOSYSSOFT, "FInfo0DlgProc", 0, "")
  405.         IF sz$ = "REACTIVATE" THEN
  406.             GOTO ADPCM12
  407.         ELSEIF sz$ = "BACK" THEN 
  408.             UIPop 1
  409.             GOTO ADPCM1
  410.         END IF  
  411.         UIPop 1
  412.  
  413.         
  414.     END IF
  415.  
  416.     END IF      
  417.  
  418.  
  419. ASKTARGET:
  420.     sz$ = UIStartDlg(CUIDLL$, TGRPBOXID, "GBOXDlgProc", 0, "")
  421.     IF sz$ = "REACTIVATE" THEN
  422.         GOTO ASKTARGET
  423.     ELSEIF sz$ = "CANCELPRESSED" THEN
  424.         UIPop 1
  425.         GOSUB DOYAWANNAQUIT
  426.         GOTO ASKTARGET
  427.     END IF
  428.     UIPop 1
  429.     TARGRP$ = sz$
  430.  
  431.  
  432.     SetCopyGaugePosition 15, 125
  433.     CopyFilesInCopyList
  434.  
  435.  
  436.     CreateProgManGroup TARGRP$, "", cmoNone
  437.     ShowProgManGroup   TARGRP$, 1,  cmoNone
  438.  
  439.     EXE$ = MakePath( DEST$, "twtw.exe" )
  440.     'CMDLINE$ = MakePath( DEST$, "msinstr.the" )
  441.  
  442.     CreateProgManItem TARGRP$, "The Way Things Work", EXE$, EXE$, cmoOverwrite
  443.     CreateProgManItem TARGRP$, "The Way Things Work - Read Me", "NOTEPAD.EXE " + MakePath(DEST$, "readme.txt") , "", cmoOverwrite
  444.  
  445.     
  446.     SrcDrive$ = MID$(SrcDir$, 1, 1)             
  447.     Length% = LEN (SrcDir$)
  448.     SrcPengeDir$ = MID$(SrcDir$, 1, Length-1)   
  449.     CreateIniKeyValue INSTRINI$, "Directory", "Data", SrcPengeDir$, cmoOverwrite
  450.     'CreateIniKeyValue INSTRINI$, "Directory", "Data", SrcDrive$ + ":\BUILD", cmoOverwrite
  451.     'CreateIniKeyValue INSTRINI$, "Directory", "Pages", SrcDrive$ + ":\BUILD\PAGES", cmoOverwrite
  452.     'CreateIniKeyValue INSTRINI$, "Directory", "Scrunge", "0", cmoOverwrite
  453.     'CreateIniKeyValue WININI$, "Sounds", "MSInstrOpen", ",Musical Instr. Open", cmoOverwrite
  454.  
  455.     GOTO INSTSUBEND
  456.  
  457.  
  458.  
  459. DOYAWANNAQUIT:
  460.     sz$ = UIStartDlg(CUIDLL$, ASKQUITDLG, "FQuitDlgProc", 0, "")
  461.  
  462.     IF sz$ = "EXIT" THEN
  463.         UIPopAll
  464.         ERROR STFQUIT
  465.     ELSEIF sz$ = "REACTIVATE" THEN
  466.         GOTO DOYAWANNAQUIT
  467.     ELSE
  468.         UIPop 1
  469.     END IF
  470.     RETURN
  471.  
  472. INSTSUBEND:
  473.  
  474.  
  475. END SUB
  476.  
  477.  
  478.  
  479.  
  480. '*************************************************************************
  481. '**
  482. '** MakePath
  483. '** --------
  484. '** Purpose:
  485. '**     Appends a file name to the end of a directory path,
  486. '**     inserting a backslash character as needed.
  487. '** Arguments:
  488. '**     szDir$  - full directory path (with optional ending "\")
  489. '**     szFile$ - filename to append to directory
  490. '** Returns:
  491. '**     Resulting fully qualified path name.
  492. '*************************************************************************
  493. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  494.     IF szDir$ = "" THEN
  495.         MakePath = szFile$
  496.     ELSEIF szFile$ = "" THEN
  497.         MakePath = szDir$
  498.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  499.         MakePath = szDir$ + szFile$
  500.     ELSE
  501.         MakePath = szDir$ + "\" + szFile$
  502.     END IF
  503. END FUNCTION
  504.  
  505.  
  506.  
  507.  
  508. '*************************************************************************
  509. '**
  510. '** IsVersionLater
  511. '** --------
  512. '** Purpose:
  513. '**     Compares two file versions
  514. '** Arguments:
  515. '**     VerOld$ - Old file version string (in format N.N.N.N)
  516. '**     VerNew$ - New file version string (in format N.N.N.N)
  517. '** Returns:
  518. '**     1 if new version is later, 0 if new version is older or the same
  519. '*************************************************************************
  520. FUNCTION IsVersionLater (VerOld$, VerNew$) STATIC AS INTEGER
  521.  
  522.     FOR I=1 TO 4 
  523.  
  524.         VOld = GetVersionNthField (VerOld$, I)
  525.         VNew = GetVersionNthField (VerNew$, I)
  526.  
  527.         
  528.  
  529.         IF VNew > VOld THEN 
  530.             IsVersionLater = 1
  531.  
  532.             GOTO XFUNC1     
  533.         ELSEIF VNew < VOld THEN
  534.             IsVersionLater = 0
  535.  
  536.             GOTO XFUNC1
  537.         END IF
  538.  
  539.  
  540.     NEXT I
  541.     IsVersionLater = 0              
  542.  
  543. XFUNC1:
  544.     
  545. END FUNCTION
  546.  
  547.  
  548. '*************************************************************************
  549. '**
  550. '** IsDateLater
  551. '** --------
  552. '** Purpose:
  553. '**     Compares two file dates
  554. '** Arguments:
  555. '**     DateOld$ in YYYY-MM-DD-HH-MM-SS format
  556. '**     DateNew$ in YYYY-MM-DD-HH-MM-SS format
  557. '** Returns:
  558. '**     1 if new date is later, 0 if new date is older or the same
  559. '*************************************************************************
  560. FUNCTION IsDateLater (DateOld$, DateNew$) STATIC AS INTEGER
  561.     
  562.  
  563.     'First compare year
  564.  
  565.     OldYear% = GetYearFromDate (DateOld$)
  566.     NewYear% = GetYearFromDate (DateNew$)
  567.  
  568.     IF NewYear% < OldYear% THEN
  569.         IsDateLater = 0
  570.  
  571.     ELSEIF NewYear% = OldYear% THEN
  572.  
  573.         'If year is the same, compare month
  574.         
  575.         OldMonth% = GetMonthFromDate (DateOld$)
  576.         NewMonth% = GetMonthFromDate (DateNew$)
  577.  
  578.         IF NewMonth% < OldMonth% THEN
  579.             IsDateLater = 0
  580.  
  581.         ELSEIF NewMonth% = OldMonth% THEN
  582.  
  583.             'If month is the same, compare day
  584.  
  585.             OldDay% = GetDayFromDate (DateOld$)
  586.             NewDay% = GetDayFromDate (DateNew$)
  587.  
  588.             IF NewDay% <= OldDay% THEN
  589.                 IsDateLater = 0
  590.             ELSE
  591.                 IsDateLater = 1
  592.             END IF
  593.          
  594.         ELSE
  595.             IsDateLater = 1
  596.         END IF
  597.  
  598.     ELSE
  599.         IsDateLater = 1
  600.     ENDIF
  601.     
  602. END FUNCTION
  603.  
  604.  
  605.  
  606.  
  607. SUB CopyADPCMFiles STATIC
  608.  
  609.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  610.     WinDir$ = GetWindowsDir()
  611.     SysDir$ = GetWindowsSysDir()
  612.  
  613.  
  614.     AddSectionFilesToCopyList "System", SrcDir$, SysDir$
  615.  
  616.     CreateIniKeyValue WinDir$ + "system.ini", "drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  617.     CreateIniKeyValue WinDir$ + "system.ini", "MSACM", "Install", "msadpcm.acm", cmoOverwrite
  618.  
  619.     NEWSYSADPCM$ = "SWITCH"
  620.  
  621.     
  622. END SUB
  623.  
  624.  
  625. FUNCTION CopyADPCMIni () STATIC AS INTEGER
  626.  
  627.     WinDir$ = GetWindowsDir()
  628.     SysDir$ = GetWindowsSysDir()
  629.  
  630.     ADPCMINIUPDATED% = 0                
  631.  
  632.  
  633.     'Change WIN.INI and SYSTEM.INI for ACM driver and ADPCM compresser
  634.  
  635.     Key$ = GetIniKeyString (WinDir$ + "system.ini", "drivers", "WaveMapper")
  636.     IF Key$ <> "msacm.drv" THEN     
  637.  
  638. ADPCMINI1:
  639.         sz$ = UIStartDlg(CUIDLL$, ASKCONFIGADPCM, "FInfo0DlgProc", 0, "")
  640.  
  641.         IF sz$ = "REACTIVATE" THEN
  642.             GOTO ADPCMINI1
  643.         END IF
  644.         UIPop 1
  645.         IF sz$ = "VIDSWITCH" THEN
  646.             CreateIniKeyValue WinDir$ + "system.ini", "drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  647.             CreateIniKeyValue WinDir$ + "system.ini", "MSACM", "Install", "msadpcm.acm", cmoOverwrite
  648.             NEWSYSADPCM$ = "SWITCH"
  649.             ADPCMINIUPDATED% = 1            
  650.  
  651.         END IF
  652.  
  653.         GOTO EXITADPCMINI
  654.  
  655.     ENDIF
  656.  
  657.  
  658.     Key$ = GetIniKeyString (WinDir$ + "system.ini", "MSACM", "Install")
  659.  
  660.     IF Key$ <> "msadpcm.acm" THEN   
  661.  
  662. ADPCMINI2:
  663.         sz$ = UIStartDlg(CUIDLL$, ASKCONFIGADPCM, "FInfo0DlgProc", 0, "")                       
  664.  
  665.         IF sz$ = "REACTIVATE" THEN      
  666.             GOTO ADPCMINI2  
  667.         END IF  
  668.         UIPop 1 
  669.         IF sz$ = "VIDSWITCH" THEN       
  670.             CreateIniKeyValue WinDir$ + "system.ini", "drivers", "WaveMapper", "msacm.drv", cmoOverwrite    
  671.             CreateIniKeyValue WinDir$ + "system.ini", "MSACM", "Install", "msadpcm.acm", cmoOverwrite       
  672.             NEWSYSADPCM$ = "SWITCH" 
  673.             ADPCMINIUPDATED% = 1                    
  674.         END IF  
  675.  
  676.         GOTO EXITADPCMINI
  677.  
  678.     ENDIF
  679.  
  680.  
  681. EXITADPCMINI:   
  682.  
  683.     IF ADPCMINIUPDATED% = 1 THEN
  684.         CopyADPCMIni = 1
  685.     ELSE
  686.         CopyADPCMIni = 0
  687.     END IF
  688.         
  689.  
  690. END FUNCTION
  691.  
  692.